#include <Arduino.h>

#define timer1 5

#define delaytime 500

//volatile byte state = LOW;   //状态为低电平 

// 声明一个定时器变量
hw_timer_t *timer = NULL;
uint32_t  interruptCount;
// 定时器中断回调函数
void IRAM_ATTR timer_event()
{
    interruptCount+=4;
}

void setup() 
{
    Serial.begin(115200);                // 配置串口

    pinMode(timer1,OUTPUT);
    
    
    timer = timerBegin(0,80,true);            // 配置定时器 这里使用的是定时器0(一共四个0123) 
                              // 80是这个定时器的分频系数 由于定时器基频是80Mhz 
                              // 这里设置80 就是1Mhz 就能保证定时器1us记录一次 
                              // true表面该定时器向上计数
    
    timerAttachInterrupt(timer,&timer_event,true);    // 配置定时器的中断函数 true表示边沿触发
    
    timerAlarmWrite(timer,4,true);        // 设置定时器的报警值 当计时器计数值达到1000000时触发中断                              // true表示重加载
    
    timerAlarmEnable(timer);              // 使能定时器报警
//      pinMode(timer1, INPUT_PULLUP);//将中断的引脚设置为输入PULLUP模式
//  attachInterrupt(digitalPinToInterrupt(timer1), blink, CHANGE );  //设置触发中断的模式和中断服务函数
//  digitalWrite(timer1,HIGH);
}

void loop() {
  digitalWrite(timer1,HIGH);
  delay(delaytime);
  
  digitalWrite(timer1,LOW);
  delay(delaytime);

//  Serial.println(timer,DEC);  
//  if(timer1=HIGH)
//  {}
//  }
//  void blink() {
//  state = digitalRead(timer1);
//  digitalWrite(ledPin, state);
  
//  Serial.println(interruptCount++);
//  interruptCount = 0;
//  Serial.println()
//  Serial.println("interrupt ing...");

//  Serial.print("timer1 = ");
//  Serial.println(state);
//  Serial.print("timer1 = ");
//  Serial.println(state);
  
}
